package com.icinfo.cloud.provider.punish.ucase.caseregister.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.icinfo.cloud.common.core.Validator.BaseGroup;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.AppendixDto;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;

/**
 * 描述：立案登记保存dto
 */
@Data
public class RegisterSaveDto implements Serializable {
    /**
     * 案件id（前端修改的时候caseId不能为空）
     */
    private String caseId;

    /**
     * 案发时间
     **/
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private String caseHappenTime;

    /**
     * 案发地详情（完整）
     **/
    private String caseHappenAddress;
    /**
     * 案发地(中文)
     **/
    private String caseHappenAddressDetail;
    /**
     * 案发地区域编码
     **/
    private String caseHappenAddressAreaCode;
    /**
     * 案发地区区域名称（中文数组）
     * 新增回显参数--不做使用，仅作回显
     */
    private String[] caseHappenAddressAreaNames;

    /**
     * 办案人员列表
     */
    private List<CaseHandlePersonInfoDto> handlePersonInfoList;

    /**
     * 当事人类型 1:个人 2:法人
     */
    private String partyType;
    /**
     * 案件当事人个人信息列表
     */
    private List<CaseRegisterPartiesPersonInfoDto> partiesPersonInfoList;
    /**
     * 案件当事人法人信息列表
     */
    private List<CaseRegisterPartiesLegalInfoDto> partiesLegalInfoList;
    /**
     * 案由列表信息
     */
    private List<CaseReasonInfoDto> caseReasonInfoList;

    /**
     * 案件名称
     */
    private String caseName;

    /**
     * 案件简要情况
     **/
    private String caseConciseCondition;

    /**
     * 条线编码
     */
    private String lineCode;
    /**
     * 条线名称
     */
    private String lineName;
    /**
     * 【后端使用】领域编码
     */
    private String caseTerritoryCode;
    /**
     * 【后端使用】领域名称
     */
    private String caseTerritoryName;

    /**
     * 【前端不用传】标准文书抬头
     */
    private String orgStandardName;
    /**
     * 【前端不用传】当事人id,","隔开
     */
    private String partyIds;
    /**
     *【后端使用】 单个法人信息
     */
    private CaseRegisterPartiesLegalInfoDto legalInfoDto;
    /**
     * 业务参数id
     */
    private String busiParamId;
    /**
     * 案件当事人个人信息列表(pdf内容)
     */
    private List<CaseRegisterPartiesPersonInfoDto> partiesPersonInfoForPdfList;
    /**
     * 案件当事人法人信息列表(pdf内容)
     */
    private List<CaseRegisterPartiesLegalInfoDto> partiesLegalInfoForPdfList;


    /**
     * 案发时间(yyyy年M月d日) 【后端使用】
     **/
    private String caseHappenTimeStr;

    /**
     * 外部行政行为码
     */
    private String  caseExternalActsCode;

    /**
     * 案件类型：1简易程序  2普通程序  3快速办理 4简案快办
     */
    private String caseType;


    /**
     * 操作类型 0:暂存 1:下一步
     */
    @NotEmpty(message = "操作类型不能为空")
    private String operateType;

    /**
     * 案件来源id
     **/
    private String caseSourceId;
    /**
     * 案件来源
     */
    @NotEmpty(message = "案件来源不能为空", groups = BaseGroup.Update.class)
    private String caseSource;


    /**
     * 附件信息列表
     **/
    private List<AppendixDto> appendixList;

    /**
     * 移送单位统一社会信用代码
     **/
    private String transferUnitUniscid;

    /**
     * 移送单位
     **/
    private String transferUnit;
    /**
     * 移送人
     **/
    private String transferPerson;
    /**
     * 移送人手机号码
     **/
    private String transferPhone;

}
